package date时间.calendar日历对象;

import java.util.Calendar;
import java.util.Date;

public class calendar1 {
    public static void main(String[] args) {
        //1·获取日历对象
        //细节： calendar是一个抽象类，不能直接new，而是通过一个静态方法获取到了类对象
        //底层原理：
        //会根据系统的不同时区来获取不同的囗历对象。
        //把会把时间中的纪元，年，月，日，时，分，秒，星期，等等的都放到一个数组当中
        Calendar c1 = Calendar.getInstance();
        System.out.println(c1);

        //设置时间
        Date d = new Date(0L);//时间原点
        c1.setTime(d);
        System.out.println(c1);

        Date d1 = new Date();//当前系统时间
        c1.setTime(d1);//更新日历对象为当前系统时间

        //获取时间，方法一：用索引
        int year = c1.get(1);//1:表示年份
        int month = c1.get(2)+1;//2：表示月份，因为月份范围0-11，所以要加1
        int day = c1.get(5);//5：表示日期
        int week = c1.get(4);//表示一月中的第几周
        System.out.println(year+"年"+month+"月"+day+"日"+" 第"+week+"周");

        //方法二：使用常量
        int year1 = c1.get(Calendar.YEAR);//表示年份
        int month1 = c1.get(Calendar.MONTH)+1;//表示月份，因为月份范围0-11，所以要加1
        int day1 = c1.get(Calendar.DAY_OF_MONTH);//表示日期
        int day_week = c1.get(Calendar.DAY_OF_WEEK)-1;//表示一周中的第几天，从星期天开始，即1为星期天

        System.out.println(day_week);

        int week1 = c1.get(Calendar.WEEK_OF_MONTH);//表示一月中的第几周
        System.out.println(year1+"年"+month1+"月"+day1+"日"+" 第"+week1+"周");
    }
}
